home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d22
/
csap208b.arc
/
DOSSTRUC.H
< prev
next >
Wrap
Text File
|
1989-10-10
|
3KB
|
120 lines
/* DpbStruct -- Layout of parameter block returned by Int 21H, Fn 32H */
/* This function is an undocumented MS-DOS service but has */
/* been verified to work correctly on PC/MS-DOS 2.0 through */
/* PC/MS-DOS 3.3 */
struct DpbStruct {
char Designator; /* Drive # (0=A, 1=B, ...) */
char AltDesignator; /* As above; 0 if RAMdisk */
unsigned SectorSize; /* Bytes per Sector */
char ClusterSize; /* Sectors per Cluster - 1 */
char ClusterShift; /* Log2 (Sectors per Clus) */
unsigned FatStart; /* Sectors in Boot Record */
char FatCopies; /* Copies of FAT */
unsigned MaxEntries; /* Max entries in Root Directory */
unsigned DataStart; /* 1st sector of data area */
unsigned LastCluster; /* Last cluster number */
char FatSize; /* Sectors in FAT */
unsigned DirStart; /* 1St sector in Root Directory */
long ddh; /* Internal use (?) */
unsigned MediaType; /* Disk type code */
long NextTable; /* chain to next disk table */
};
/*
* MsDate -- packed date format used in directory
*/
struct MsDate {
unsigned d : 5;
unsigned m : 4;
unsigned y : 7;
};
/*
* MsTime -- packed time format used in directory
*/
struct MsTime {
unsigned xx : 5;
unsigned mm : 6;
unsigned hh : 5;
};
/* ExtendedHeader -- header used in constructing an
* extended file control block.
*/
struct ExtendedHeader {
char Header;
char Zeros[5];
char Attrib;
};
/* ExtFcb -- extended file control block */
struct ExtFcb {
struct ExtendedHeader FcbHdr;
char DriveId;
char FileName[8];
char FileExtension[3];
unsigned CurBlock;
unsigned RecSize;
long FileSize;
struct MsDate Date;
struct MsTime Time;
char Reserved[8];
char RecInBlock;
long RelRecord;
};
/*
* DirDta -- dta directory entry structure
*/
struct DirDta {
char DriveNum;
char FileName[11];
char Attributes;
char Unused[10];
struct MsTime CreateTime;
struct MsDate CreateDate;
unsigned FirstCluster;
long FileSize;
};
/*
* DirEntry -- format of an entry in the directory
*/
struct DirEntry {
unsigned char Name[8];
char Ext[3];
char Attribute;
char Reserved[10];
unsigned ModifyTime;
unsigned ModifyDate;
unsigned FirstCluster;
long FileSize;
};
/*
* ExtendedEntry -- directory structure for use with
* extended file search
*/
struct ExtendedEntry {
struct ExtendedHeader DirHdr;
struct DirDta Body;
};
struct ClusterEntry {
struct ClusterEntry *Next;
unsigned Cluster;
};
struct ClusterQueue {
struct ClusterEntry *Head, *Current;
int Count;
};